// #include <QCoreApplication>
// #include <QtTest>
// #include <src/flowarrowelement.h>

// class test1 : public QObject
// {
//     Q_OBJECT

// public:
//     test1();
//     ~test1();

// private slots:
//     void initTestCase();
//     void cleanupTestCase();
//     void test_addition();
// };

// test1::test1() {}

// test1::~test1() {}

// void test1::initTestCase() {
// }

// void test1::cleanupTestCase() {
// }

// void test1::test_addition() {
//     // 假设 FlowArrowElement 是已经定义好的类，并且具有适当的构造函数
//     FlowArrowElement originalElement;

//     // 设置一些初始值
//     originalElement.borderColor = QColor(Qt::red);
//     originalElement.contentColor = QColor(Qt::blue);
//     originalElement.selected = true;

//     // 假设 mainItem 是一个 QGraphicsItem 类型
//     originalElement.mainItem = new QGraphicsPathItem();
//     originalElement.mainItem->setPen(QPen(Qt::green));
//     originalElement.mainItem->setPath(QPainterPath(QPointF(10, 10)));

//     // 设置 startDot 和 endDot
//     originalElement.startDot = new QGraphicsRectItem(0, 0, 10, 10);
//     originalElement.endDot = new QGraphicsRectItem(0, 0, 10, 10);
//     originalElement.startDot->setPen(QPen(Qt::black));
//     originalElement.endDot->setBrush(QBrush(Qt::yellow));

//     // 执行 deepClone
//     FlowArrowElement* clonedElement = originalElement.deepClone();

//     // 验证基本属性是否正确复制
//     QCOMPARE(clonedElement->borderColor, originalElement.borderColor);
//     QCOMPARE(clonedElement->contentColor, originalElement.contentColor);
//     QCOMPARE(clonedElement->selected, originalElement.selected);

//     // 验证 mainItem 的属性是否被正确复制
//     QCOMPARE(clonedElement->mainItem->pen(), originalElement.mainItem->pen());
//     QCOMPARE(clonedElement->mainItem->path(), originalElement.mainItem->path());

//     // 验证 startDot 和 endDot 的属性是否被正确复制
//     QCOMPARE(clonedElement->startDot->pen(), originalElement.startDot->pen());
//     QCOMPARE(clonedElement->endDot->brush(), originalElement.endDot->brush());

//     // 验证 startDot 和 endDot 是否是深拷贝
//     QVERIFY(clonedElement->startDot != originalElement.startDot); // 验证指针不同
//     QVERIFY(clonedElement->endDot != originalElement.endDot); // 验证指针不同

//     // 验证 startDot 和 endDot 的位置、可见性等是否复制
//     QCOMPARE(clonedElement->startDot->pos(), originalElement.startDot->pos());
//     QCOMPARE(clonedElement->endDot->pos(), originalElement.endDot->pos());
//     QVERIFY(clonedElement->startDot->isVisible() == originalElement.startDot->isVisible());
//     QVERIFY(clonedElement->endDot->isVisible() == originalElement.endDot->isVisible());

//     // 确保克隆的对象和原始对象之间的独立性
//     clonedElement->startDot->setPos(100, 100);
//     QCOMPARE(clonedElement->startDot->pos(), QPointF(100, 100)); // 克隆对象位置变化
//     QCOMPARE(originalElement.startDot->pos(), QPointF(0, 0)); // 原始对象位置不变
// }

// QTEST_MAIN(test1)

// #include "tst_test1.moc"
